package cn.glinks.liuhe.activity;

import static cn.glinks.liuhe.utils.MapUtils.changeCamera;

import android.graphics.Color;
import android.graphics.Typeface;
import android.os.Bundle;
import android.view.KeyEvent;
import android.view.MotionEvent;
import android.widget.FrameLayout;
import android.widget.RelativeLayout;
import android.widget.TextView;
import butterknife.BindView;
import cn.glinks.liuhe.R;
import cn.glinks.liuhe.api.ApiConstants;
import cn.glinks.liuhe.api.ApiRequest;
import cn.glinks.liuhe.api.jsonbean.ParksInfo;
import cn.glinks.liuhe.api.jsonbean.UserInfo;
import cn.glinks.liuhe.app.AppApplication;
import cn.glinks.liuhe.app.AppConstant;
import cn.glinks.liuhe.base.BaseActivity;
import cn.glinks.liuhe.baserx.RxSubscriber;
import cn.glinks.liuhe.model.Park;
import cn.glinks.liuhe.utils.ActTransAnimUtils;
import cn.glinks.liuhe.utils.DisplayUtils;
import cn.glinks.liuhe.utils.GsonUtils;
import cn.glinks.liuhe.utils.LogUtils;
import cn.glinks.liuhe.utils.MapMarkerUtils;
import cn.glinks.liuhe.utils.ToastUtils;
import cn.glinks.liuhe.widget.iOSDialog;
import com.amap.api.maps.AMap;
import com.amap.api.maps.AMapOptions;
import com.amap.api.maps.TextureMapView;
import com.amap.api.maps.UiSettings;
import com.amap.api.maps.model.BitmapDescriptor;
import com.amap.api.maps.model.CameraPosition;
import com.amap.api.maps.model.LatLng;
import com.amap.api.maps.model.LatLngBounds;
import com.amap.api.maps.model.Marker;
import com.amap.api.maps.model.MarkerOptions;
import com.amap.api.maps.model.Text;
import com.amap.api.maps.model.TextOptions;
import java.util.ArrayList;
import java.util.List;


/**
 * Des:统计数据地图页面
 *
 * @author MarsBlade of Cyh
 * @created 2017-03-21 14:43
 */
public class StatisticActivity extends BaseActivity implements
        AMap.OnMapClickListener,
        AMap.OnMapLongClickListener,
        AMap.OnMapTouchListener,
        AMap.OnMarkerClickListener {

    @BindView(R.id.map)
    TextureMapView mMapView;

    @BindView(R.id.tv_title)
    TextView mTitleTextView;

    // 高德地图相关
    private AMap mAMap; // 声明AMap类对象
    private UiSettings mUiSettings;// 声明UiSettings类对象

    // 地图配置参数
    private float ZOOM_LEVEL_DEFAULT = 4.724437f;// 默认的缩放级别
    private float ZOOM_LEVEL_MIN = 4.0f;// 最小缩放级别
    private float ZOOM_LEVEL_MAX = 6.613881f;// 最大缩放级别
    private int FONT_SIZE_MIN = 18;// 最小字体尺寸(用于TextMarker)
    private int FONT_SIZE_MAX = 48;// 最大字体尺寸(用于TextMarker)
    private LatLng CHINA = new LatLng(32.50766266211735, 114.1335940361023);// 中国区域中心点
    private LatLng SOUTH_WEST_LATLNG = new LatLng(2.0, 65.0);// 西南坐标(限制地图显示区域)
    private LatLng NORTH_EAST_LATLNG = new LatLng(55.0, 145.0);// 东北坐标(限制地图显示区域)

    // 变量
    private UserInfo mUserInfo;
    private boolean isMapLoaded = false;// 地图是否加载完成
    private boolean isDataAcquired = false;// 统计数据是否获取成功
    private boolean isDataLoaded = false;// 统计数据是否加载完成
    private boolean isDataShowed = false;// 统计数据是否显示完成
    private ArrayList<Park> mParkList = new ArrayList<Park>();

    @Override
    public int getLayoutId() {
        return R.layout.activity_statics;
    }

    @Override
    public void initView(Bundle savedInstanceState) {
        // 加载用户信息
        mUserInfo = ((AppApplication) getApplicationContext()).getLoginUser();
        // 根据单位类型设置统计页面标题
        if (mUserInfo.getUser().getUnitCode().equals("S8001")) { // 富士康
            mTitleTextView.setText("富士康员工心理测评结果分布");
        } else if (mUserInfo.getUser().getUnitCode().equals("Z6802")) { // 2017广西壮族自治区总工会驻粤务工农民工骨干培训班
            mTitleTextView.setText("心理测评结果分布");
        } else {
            mTitleTextView.setText("心理测评结果分布");
        }
        // 根据单位配置地图基本参数
        setMapConf();
        // 初始化Marker的icon资源尺寸
        MapMarkerUtils.resizeMarkIcon(this);
        // 请求统计数据
        requestStatisticData();
        // 旋转Root View(横屏处理)
        RelativeLayout rootLayout = (RelativeLayout)findViewById(R.id.rl_statics_root);
        int screenHeight = DisplayUtils.getScreenHeight(this);
        int screenWidth = DisplayUtils.getScreenWidth(this);
        FrameLayout.LayoutParams params = (FrameLayout.LayoutParams) rootLayout.getLayoutParams();
        params.height = screenWidth;
        params.width = screenHeight;
        params.topMargin = (screenHeight - screenWidth) / 2;
        params.leftMargin = (screenWidth - screenHeight) / 2;
        rootLayout.setLayoutParams(params);
        rootLayout.setRotation(90);
        // 设置为透明状态栏
        SetTranslanteBar();
        // 初始化高德地图第一步
        mMapView.onCreate(savedInstanceState);// 此方法必须重写
        // 初始化高德地图第二步
        initMapBase();
    }

    @Override
    public void onResume() {
        super.onResume();
        mMapView.onResume();
    }

    @Override
    public void onPause() {
        super.onPause();
        mMapView.onPause();
    }

    @Override
    public void onSaveInstanceState(Bundle outState) {
        super.onSaveInstanceState(outState);
        mMapView.onSaveInstanceState(outState);
    }

    @Override
    public void onDestroy() {
        // mMapView的释放要放在super.onDestroyView()之前, 否则会被ButterKnife的解绑丢失引用
        mMapView.onDestroy();
        super.onDestroy();
    }

    /*--------------------------------------------------------------------------------
     *                          统计数据初始化函数
     ---------------------------------------------------------------------------------*/
    /**
     * 请求统计数据
     */
    private void requestStatisticData() {
        // 发送网络请求
        mRxManager.add(ApiRequest.requestGetStatisticData(mUserInfo.getJwt())
                .subscribe(new RxSubscriber<String>(mContext) {
                    @Override
                    protected void _onNext(String msg) {
                        if (GsonUtils.getIntValue(msg, "error") == 0) {
                            ToastUtils.showShort("获取统计数据成功");
                            String result = GsonUtils.getValue(msg, "result");
                            //result = AppConstant.getTestJson();虚拟数据
                            // 解析数据
                            ParksInfo info = (ParksInfo) GsonUtils.fromJson(result, ParksInfo.class);
                            // 解析响应
                            if (info != null) {
                                // 将统计数据缓存到全局变量
                                ((AppApplication) getApplicationContext()).setStatisticData(info);
                                // 设置标志位
                                isDataAcquired = true;
                                // 加载统计数据
                                isDataLoaded = loadParkDatas(info);
                                // 判断是否显示数据
                                if (isDataAcquired && isDataLoaded && isMapLoaded && (!isDataShowed)) {
                                    showAllParkMarker(mParkList);
                                    isDataShowed = true;
                                }
                            } else {
                                ToastUtils.showShort("解析统计数据失败:" + msg);
                            }
                        } else {
                            String reason = GsonUtils.getValue(msg, "reason");
                            ApiConstants.showError(reason);
                        }
                    }

                    @Override
                    protected void _onError(String message) {
                        // TODO:处理失败响应
                        ToastUtils.showShort("获取统计数据失败:" + message);
                    }
                }));
    }

    /**
     * 加载Park数据
     * @param info 获取到的统计数据
     * @return boolean 是否加载数据成功
     */
    private boolean loadParkDatas(ParksInfo info) {
        List<ParksInfo.ParksBean> list = info.getParks();
        // 判断园区个数是否为0
        if (info.getParkSum() <= 0 || list == null) {
            return false;
        }
        // 清空园区UI维护列表
        mParkList.clear();
        // 添加到园区UI
        ParksInfo.ParksBean parksBean;
        Park park;
        for (int i = 0; i < list.size(); i++) {
            parksBean = list.get(i);
            if (parksBean.getTestSum() > 0) {
                park = new Park(i,
                        parksBean.getParkName(),
                        parksBean.getParkName().replace("园区", ""),
                        new LatLng(Double.parseDouble(parksBean.getLat()), Double.parseDouble(parksBean.getLng())));
                park.parkLevel = parksBean.getParkLevel();
                park.align = parksBean.getNameAlign();
                int rate = 50;// 合格率判断基准值,默认50%
                if (mUserInfo.getUser().getUnitCode().equals("S8001")) { // 富士康
                    park.qualifiedRate = parksBean.getL3Sum() * 100 / parksBean.getTestSum();
                    rate = 98;
                } else if (mUserInfo.getUser().getUnitCode().equals("Z6802")) { // 2017广西壮族自治区总工会驻粤务工农民工骨干培训班
                    park.qualifiedRate = (parksBean.getL3Sum() + parksBean.getL4Sum()) * 100 / parksBean.getTestSum();
                    rate = 99;
                } else {
                    park.qualifiedRate = parksBean.getL3Sum() * 100 / parksBean.getTestSum();
                    rate = 50;
                }
                if (park.qualifiedRate >= rate) {
                    park.isQualified = true;
                } else {
                    park.isQualified = false;
                }
                mParkList.add(park);
            }
        }
        return true;
    }

    /**
     * 显示全部 Park Marker
     *
     * @param list List<Park>
     */
    public void showAllParkMarker(List<Park> list) {
        for (int i = 0; i < list.size(); i++) {
            addParkNameMarker(list.get(i));
            addParkMarker(list.get(i));
        }
    }

    /*--------------------------------------------------------------------------------
     *                          地图初始化配置函数
     ---------------------------------------------------------------------------------*/
    /**
     * 根据不同单位配置地图基本参数(在地图初始化之前调用)
     */
    private void setMapConf() {
        LogUtils.logd(mUserInfo.getUser().getUnitCode());
        if (mUserInfo.getUser().getUnitCode().equals("S8001")) { // 富士康
            ZOOM_LEVEL_DEFAULT = 4.724437f;// 默认的缩放级别
            ZOOM_LEVEL_MIN = 4.0f;// 最小缩放级别
            ZOOM_LEVEL_MAX = 6.613881f;// 最大缩放级别
            FONT_SIZE_MIN = 18;// 最小字体尺寸(用于TextMarker)
            FONT_SIZE_MAX = 48;// 最大字体尺寸(用于TextMarker)
            CHINA = new LatLng(32.50766266211735, 114.1335940361023);// 中国区域中心点
            SOUTH_WEST_LATLNG = new LatLng(2.0, 65.0);// 西南坐标(限制地图显示区域)
            NORTH_EAST_LATLNG = new LatLng(55.0, 145.0);// 东北坐标(限制地图显示区域)
        } else if (mUserInfo.getUser().getUnitCode().equals("Z6802")) { // 2017广西壮族自治区总工会驻粤务工农民工骨干培训班
//            ZOOM_LEVEL_DEFAULT = 6.90f;// 默认的缩放级别
//            ZOOM_LEVEL_MIN = 6.90f;// 最小缩放级别
//            ZOOM_LEVEL_MAX = 8.8f;// 最大缩放级别
//            FONT_SIZE_MIN = 18;// 最小字体尺寸(用于TextMarker)
//            FONT_SIZE_MAX = 48;// 最大字体尺寸(用于TextMarker)
//            CHINA = new LatLng(23.844119050680277, 108.6602783203125);// 中国区域中心点
//            SOUTH_WEST_LATLNG = new LatLng(20.0, 102.0);// 西南坐标(限制地图显示区域)
//            NORTH_EAST_LATLNG = new LatLng(28.0, 115.0);// 东北坐标(限制地图显示区域)
            ZOOM_LEVEL_DEFAULT = 4.724437f;// 默认的缩放级别
            ZOOM_LEVEL_MIN = 4.0f;// 最小缩放级别
            ZOOM_LEVEL_MAX = 8.8f;// 最大缩放级别
            FONT_SIZE_MIN = 18;// 最小字体尺寸(用于TextMarker)
            FONT_SIZE_MAX = 48;// 最大字体尺寸(用于TextMarker)
            CHINA = new LatLng(32.50766266211735, 114.1335940361023);// 中国区域中心点
            SOUTH_WEST_LATLNG = new LatLng(2.0, 65.0);// 西南坐标(限制地图显示区域)
            NORTH_EAST_LATLNG = new LatLng(55.0, 145.0);// 东北坐标(限制地图显示区域)
        }
    }

    /**
     * 初始化高德地图
     */
    private void initMapBase() {
        if (mAMap == null) {
            mAMap = mMapView.getMap();

            // 设置点击触摸监听器
            mAMap.setOnMapClickListener(this);// 对amap添加单击地图事件监听器
            mAMap.setOnMapLongClickListener(this);// 对amap添加长按地图事件监听器
            mAMap.setOnMapTouchListener(this);// 对amap添加触摸地图事件监听器
            mAMap.setOnMarkerClickListener(this);// 对amap添加Marker点击时间监听器

            // 设置AMap的一些关键属性
            initMapUiSettings();
            initMapSettings();

            // 切换到默认的可视视图
            changeCameraByInit(CHINA);

            // 设置移动地图事件监听器
            mAMap.setOnCameraChangeListener(new AMap.OnCameraChangeListener() {
                @Override
                public void onCameraChange(CameraPosition cameraPosition) {
                    updateAllParkMarkerSize(cameraPosition.zoom);
//                    LogUtils.logd("onCameraChange->zoom="+cameraPosition.zoom);
//                    LogUtils.logd("onCameraChange->latitude="+cameraPosition.target.latitude);
//                    LogUtils.logd("onCameraChange->longitude="+cameraPosition.target.longitude);
                }

                @Override
                public void onCameraChangeFinish(CameraPosition cameraPosition) {
                    updateAllParkMarkerSize(cameraPosition.zoom);
                    LogUtils.logd("onCameraChangeFinish->zoom="+cameraPosition.zoom);
                    LogUtils.logd("onCameraChangeFinish->latitude="+cameraPosition.target.latitude);
                    LogUtils.logd("onCameraChangeFinish->longitude="+cameraPosition.target.longitude);
                }
            });

            // 设置地图加载成功监听器
            mAMap.setOnMapLoadedListener(new AMap.OnMapLoadedListener() {
                @Override
                public void onMapLoaded() {
                    LogUtils.logd("onMapLoaded");
                    // 设置标志位
                    isMapLoaded = true;
                    // 判断是否显示数据
                    if (isDataAcquired && isDataLoaded && isMapLoaded && (!isDataShowed)) {
                        showAllParkMarker(mParkList);
                        isDataShowed = true;
                    }
                }
            });
        }
    }

    /**
     * 初始化高德地图UiSettings配置(initMapBase中调用)
     */
    private void initMapUiSettings() {
        mUiSettings = mAMap.getUiSettings();
        mUiSettings.setLogoPosition(AMapOptions.LOGO_POSITION_BOTTOM_RIGHT);// 设置高德地图Logo位置
        mUiSettings.setZoomControlsEnabled(false);// 缩放按钮是否显示
        mUiSettings.setCompassEnabled(false);// 指南针是否显示
        mUiSettings.setScaleControlsEnabled(false);// 比例尺是否显示
        mUiSettings.setMyLocationButtonEnabled(false);// 定位按钮是否显示
        mUiSettings.setTiltGesturesEnabled(false);// 禁止倾斜手势
        mUiSettings.setRotateGesturesEnabled(false);// 禁止旋转手势
    }

    /**
     * 初始化高德地图其他配置(initMapBase中调用)
     */
    private void initMapSettings() {
        // 定位功能配置
        mAMap.setMyLocationEnabled(false);// 设置是否显示定位层并可触发定位
        // 隐藏相关图层
        mAMap.setTrafficEnabled(false);
        mAMap.showBuildings(false);
        mAMap.showMapText(false);
        // 定义最大最小缩放级别
        mAMap.setMinZoomLevel(ZOOM_LEVEL_MIN);
        mAMap.setMaxZoomLevel(ZOOM_LEVEL_MAX);
        // 设置限制区域
        LatLngBounds latLngBounds = new LatLngBounds(SOUTH_WEST_LATLNG, NORTH_EAST_LATLNG);
        mAMap.setMapStatusLimits(latLngBounds);
    }

    /*--------------------------------------------------------------------------------
     *                          视图移动接口
     ---------------------------------------------------------------------------------*/
    /**
     * 移动可视视图到指定坐标点(初始化时)
     * @param target LatLng 目标位置的屏幕中心点经纬度坐标
     */
    private void changeCameraByInit(LatLng target) {
        changeCamera(mAMap, false, target, ZOOM_LEVEL_DEFAULT, 0.0f, 0.0f, null);
    }

    /**
     * 移动可视视图到指定坐标点(单击触发)
     * @param target LatLng 目标位置的屏幕中心点经纬度坐标
     */
    private void changeCameraByClick(LatLng target) {
        changeCamera(mAMap, true, target, ZOOM_LEVEL_MAX, 0.0f, 0.0f, null);
    }


    /*--------------------------------------------------------------------------------
     *                          地图Marker接口实现
     ---------------------------------------------------------------------------------*/
    /**
     * 添加一个园区名字Marker(Text)
     *
     * @param park Park
     */
    public void addParkNameMarker(Park park) {
        // 设置Marker
        TextOptions textOptions = new TextOptions()
                .position(park.latLng)
                .text(park.showName + " " + park.qualifiedRate + "%")
                .fontColor(Color.BLACK)
                .backgroundColor(Color.TRANSPARENT)
                .fontSize(FONT_SIZE_MIN)
                .rotate(0)
                .align(Text.ALIGN_LEFT, Text.ALIGN_CENTER_VERTICAL)
                .zIndex(1.f).typeface(Typeface.DEFAULT);
        // 设置Marker的字体类型
        if (park.parkLevel > Park.LEVEL_PROVINCE) {
            textOptions.typeface(Typeface.DEFAULT);
        } else {
            textOptions.typeface(Typeface.DEFAULT_BOLD);
        }
        // 设置Marker方位
        if (park.align == Park.ALIGN_TOP) {
            textOptions.align(Text.ALIGN_TOP, Text.ALIGN_CENTER_VERTICAL);
        } else if (park.align == Park.ALIGN_BOTTOM) {
            textOptions.align(Text.ALIGN_BOTTOM, Text.ALIGN_CENTER_VERTICAL);
        } else if (park.align == Park.ALIGN_RIGHT) {
            textOptions.align(Text.ALIGN_LEFT, Text.ALIGN_CENTER_VERTICAL);
        } else if (park.align == Park.ALIGN_LEFT) {
            textOptions.align(Text.ALIGN_RIGHT, Text.ALIGN_CENTER_VERTICAL);
        }
        // 添加Marker到地图
        if (park.textMarker != null) {
            park.textMarker.destroy();
            park.textMarker = null;
        }
        park.textMarker = mAMap.addText(textOptions);
        // 添加到列表缓存
        if (!mParkList.contains(park)) {
            mParkList.add(park);
        }
    }

    /**
     * 添加一个合格率Marker
     *
     * @param park Park
     */
    public void addParkMarker(Park park) {
        // 设置Marker
        MarkerOptions markerOptions;
        if (park.isQualified) {
            markerOptions = MapMarkerUtils.getQualifiedMarkerOptionsFrom(park.name, park.latLng);
        } else {
            markerOptions = MapMarkerUtils.getUnqualifiedMarkerOptionsFrom(park.name, park.latLng);
        }
        if (null != markerOptions) {
            // 设置Marker锚点
            if (park.align == Park.ALIGN_TOP) {
                markerOptions.anchor(0.5f,0.0f);
            } else if (park.align == Park.ALIGN_BOTTOM) {
                markerOptions.anchor(0.5f,1.0f);
            } else if (park.align == Park.ALIGN_RIGHT) {
                markerOptions.anchor(1.0f,0.5f);
            } else if (park.align == Park.ALIGN_LEFT) {
                markerOptions.anchor(0.0f,0.5f);
            }
            // 添加Marker到地图
            if (park.marker != null) {
                park.marker.destroy();
                park.marker = null;
            }
            park.marker = mAMap.addMarker(markerOptions);
            park.marker.setClickable(true);
            park.marker.setObject(park);
            // 添加到列表缓存
            if (!mParkList.contains(park)) {
                mParkList.add(park);
            }
            // 启动生长动画效果
            MapMarkerUtils.startGrowAnimation(mAMap, park.marker);
        }
    }

    /**
     * 更新全部Marker尺寸
     *
     * @param zoom 地图缩放级别
     */
    public void updateAllParkMarkerSize(float zoom) {
        float rate = (zoom - ZOOM_LEVEL_MIN) / (ZOOM_LEVEL_MAX - ZOOM_LEVEL_MIN);
        float fontSize = rate * (FONT_SIZE_MAX - FONT_SIZE_MIN) + FONT_SIZE_MIN;
        for (int i = 0; i < mParkList.size(); i++) {
            mParkList.get(i).textMarker.setFontSize((int)fontSize);
        }

        BitmapDescriptor greenPoint;
        BitmapDescriptor redPoint;
        if (rate < 0.20) {
            greenPoint = MapMarkerUtils.sGreenPoint_6;
            redPoint = MapMarkerUtils.sRedPoint_6;
        } else if (rate < 0.40) {
            greenPoint = MapMarkerUtils.sGreenPoint_8;
            redPoint = MapMarkerUtils.sRedPoint_8;
        } else if (rate < 0.60) {
            greenPoint = MapMarkerUtils.sGreenPoint_10;
            redPoint = MapMarkerUtils.sRedPoint_10;
        } else if (rate < 0.80) {
            greenPoint = MapMarkerUtils.sGreenPoint_12;
            redPoint = MapMarkerUtils.sRedPoint_12;
        } else {
            greenPoint = MapMarkerUtils.sGreenPoint_14;
            redPoint = MapMarkerUtils.sRedPoint_14;
        }
        for (int i = 0; i < mParkList.size(); i++) {
            if (mParkList.get(i).isQualified) {
                mParkList.get(i).marker.setIcon(greenPoint);
            } else {
                mParkList.get(i).marker.setIcon(redPoint);
            }
        }
    }

    /*--------------------------------------------------------------------------------
     *                          地图监听回调接口实现
     ---------------------------------------------------------------------------------*/
    /**
     * 对单击地图事件回调
     */
    @Override
    public void onMapClick(LatLng point) {
        //LogUtils.logd("单击地图事件->"+point);
        //ToastUtils.showShort("单击地图事件->"+point);
        // 如果当前缩放尺寸不是最大尺寸, 才会调用视图变化动作
        if (mAMap.getCameraPosition().zoom < ZOOM_LEVEL_MAX) {
            changeCameraByClick(point);
        }
    }

    /**
     * 对长按地图事件回调
     */
    @Override
    public void onMapLongClick(LatLng point) {
        //LogUtils.logd("长按地图事件->"+point);
        //ToastUtils.showShort("长按地图事件->"+point);
    }

    /**
     * 对触摸地图事件回调
     */
    @Override
    public void onTouch(MotionEvent event) {
//        LogUtils.logd("触摸地图事件->"+event.getX() + " " + event.getY());
//        ToastUtils.showShort("触摸地图事件->"+event.getX() + " " + event.getY());
    }

    /**
     * 对marker标注点点击响应事件
     */
    @Override
    public boolean onMarkerClick(final Marker marker) {
        // 获取Marker携带的数据
        Park park = (Park) marker.getObject();
        // 判断是否有统计数据
        // 获取园区统计数据
        ParksInfo info = ((AppApplication) getApplicationContext()).getStatisticData();
        ParksInfo.ParksBean bean = info.getParks().get(park.index);
        if (bean.getTestPop() <= 0) {
            iOSDialog.showRadioDialog(StatisticActivity.this, "提示", "目前此园区还没有有效的统计数据",
                    new iOSDialog.DialogClickListener() {
                        @Override
                        public void confirm() {
                        }

                        @Override
                        public void cancel() {
                        }
                    });

            return true;
        }
        // 打包数据,传递并跳转到图表页面
        Bundle bundle = new Bundle();
        bundle.putInt(AppConstant.BUNDLE_PARK_INDEX, park.index);
        ActTransAnimUtils.startActionFadeInFadeOut(StatisticActivity.this, ChartOneActivity.class, bundle);
        return true;
    }

    /*--------------------------------------------------------------------------------
     *                          点击事件接口实现
     ---------------------------------------------------------------------------------*/

    /*--------------------------------------------------------------------------------
     *                          系统键处理
     ---------------------------------------------------------------------------------*/
    /**
     * 监听主页键,返回键
     *
     * @param keyCode
     * @param event
     * @return
     */
    @Override
    public boolean onKeyDown(int keyCode, KeyEvent event) {
        if (keyCode == KeyEvent.KEYCODE_BACK) {
            // 返回上一页面
            ActTransAnimUtils.finishActionSlideLeftToRight(StatisticActivity.this);
            return true;
        }
        return super.onKeyDown(keyCode, event);
    }


}
